﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;

using QLTTAN.BLL;
using QLTTAN.DTO;
namespace QLTTAN.Form
{
    public partial class frmGiaoVien : DevExpress.XtraEditors.XtraForm
    {
        GiaoVienBLL GV_BLL;
        public int MaGiaoVienSelected = -1;

        public frmGiaoVien()
        {
            InitializeComponent();
        }

        private void frmGiaoVien_Load(object sender, EventArgs e)
        {

            GV_BLL = new GiaoVienBLL();

            // Trường hợp chỉnh sửa thông tin giảng viên => load lên thông tin giảng viên cần chỉnh sửa.
            if (MaGiaoVienSelected != -1)
            {
                GiaoVienDTO GV_DTO = new GiaoVienDTO();
                GV_DTO.MaGV = MaGiaoVienSelected;

                try
                {
                    DataRow GiaoVienSelected = GV_BLL.GiaoVien_GetInfo(GV_DTO);
                    txtMaGV.Text = GiaoVienSelected["MaGV"].ToString();
                    txtTenGV.Text = GiaoVienSelected["TenGV"].ToString();
                    dateNgaySinh.EditValue = (DateTime)GiaoVienSelected["NgaySinh"];
                    cbxGioiTinh.SelectedIndex = Convert.ToInt32(GiaoVienSelected["GioiTinh"]);
                    txtEmail.Text = GiaoVienSelected["Email"].ToString();
                    txtDiaChi.Text = GiaoVienSelected["DiaChi"].ToString();
                    txtSoDienThoai.Text = GiaoVienSelected["DienThoai"].ToString();
                    txtCMND.Text = GiaoVienSelected["CMND"].ToString();
                    txtBangCap.Text = GiaoVienSelected["BangCap"].ToString();
                }
                catch (Exception ex)
                {
                    XtraMessageBox.Show(ex.Message, "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            string error = "";

            if (txtTenGV.Text.Trim().Equals(""))
            {
                error += "Bạn chưa nhập tên giáo viên. \r\n";
            }
            if(dateNgaySinh.EditValue == null)
            {
                error += "Bạn chưa chọn ngày sinh. \r\n";
            }
            if (cbxGioiTinh.SelectedItem == null)
            {
                error += "Bạn chưa chọn giới tính. \r\n";
            }
            if (txtSoDienThoai.Text.Trim().Equals(""))
            {
                error += "Bạn chưa nhập số điện thoại. \r\n";
            }
            if (txtCMND.Text.Trim().Equals(""))
            {
                error += "Bạn chưa nhập CMND. \r\n";
            }
            if (txtBangCap.Text.Trim().Equals(""))
            {
                error += "Bạn chưa chọn bằng cấp. \r\n";
            }

            if (!error.Equals(""))
            {
                XtraMessageBox.Show(error, "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            GiaoVienDTO GV_DTO = new GiaoVienDTO();
            GV_DTO.TenGV = txtTenGV.Text.Trim();
            GV_DTO.NgaySinh = (DateTime)dateNgaySinh.EditValue;
            GV_DTO.GioiTinh = cbxGioiTinh.SelectedIndex;
            GV_DTO.Email = txtEmail.Text.Trim();
            GV_DTO.DiaChi = txtDiaChi.Text.Trim();
            GV_DTO.DienThoai = txtSoDienThoai.Text.Trim();
            GV_DTO.CMND = txtCMND.Text.Trim();
            GV_DTO.BangCap = txtBangCap.Text.Trim();

            try
            {
                if (MaGiaoVienSelected == -1)
                {
                    if (GV_BLL.GiaoVien_Insert(GV_DTO) > 0)
                    {
                        if(XtraMessageBox.Show("Lưu dữ liệu thành công.", "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
                            this.Close();
                    }                     
                    else
                        XtraMessageBox.Show("Lưu dữ liệu thất bại.", "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    GV_DTO.MaGV = int.Parse(txtMaGV.Text.Trim());

                    if (GV_BLL.GiaoVien_Update(GV_DTO) > 0)
                    {
                        if (XtraMessageBox.Show("Lưu dữ liệu thành công.", "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
                            this.Close();
                    }
                    else
                        XtraMessageBox.Show("Lưu dữ liệu thất bại.", "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, "Thông báo!!!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            if (XtraMessageBox.Show("Bạn có chắc chắn muốn thoát khỏi màn hình Giảng Viên?\n Mọi thao tác của bạn sẽ không được lưu lại.",
                                   "Thông báo!!!", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
                this.Close();
        }

        private void txtSoDienThoai_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !(e.KeyChar == (char)Keys.Back))
            {
                const char Delete = (char)8;
                e.Handled = !Char.IsDigit(e.KeyChar) && e.KeyChar != Delete;
            }
        }

        private void txtCMND_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !(e.KeyChar == (char)Keys.Back))
            {
                const char Delete = (char)8;
                e.Handled = !Char.IsDigit(e.KeyChar) && e.KeyChar != Delete;
            }
        }


    }
}